home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / qb2 / pro16 / bclose.bas next >
BASIC Source File  |  1992-02-06  |  4KB  |  100 lines

  1. ' BClose.Bas
  2. ' Portions Copyright 1987-1990 Microsoft Corp.
  3. DEFINT A-Z
  4. SUB ButtonClose (handle)
  5.  
  6. ' =======================================================================
  7. ' Make sure a window is actually opened
  8. ' =======================================================================
  9.  
  10. windo = WindowCurrent
  11.  
  12. IF windo > 0 THEN
  13.  
  14.   ' ===================================================================
  15.   ' If handle=0, recursively close all buttons in the CURRENT WINDOW only
  16.   ' ===================================================================
  17.  
  18.   IF handle = 0 THEN
  19.     IF GloStorage.numButtonsOpen > 0 THEN
  20.       FOR A = GloStorage.numButtonsOpen TO 1 STEP -1
  21.          IF GloButton(A).windowHandle = windo THEN
  22.            ButtonClose GloButton(A).handle
  23.          END IF
  24.       NEXT A
  25.     END IF
  26.   ELSE
  27.  
  28.   ' ===============================================================
  29.   ' Get the index into the global array based on handle, and
  30.   ' currWindow
  31.   ' ===============================================================
  32.  
  33.   button = FindButton(handle)
  34.  
  35.   ' ===============================================================
  36.   ' If valid, hide button, then squeeze array, decrement totals
  37.   ' ===============================================================
  38.  
  39.   IF button > 0 THEN
  40.                       
  41.     COLOR GloWindow(windo).fore, GloWindow(windo).back
  42.     SELECT CASE GloButton(button).buttonType
  43.          CASE 1, 2, 3
  44.              LOCATE GloWindow(windo).row1 + GloButton(button).row1 - 1, _
  45.                     GloWindow(windo).col1 + GloButton(button).col1 - 1
  46.              MouseHide
  47.              PRINT SPACE$(4 + LEN(RTRIM$(GloButton(button).text$)));
  48.              MouseShow
  49.          CASE 5
  50.              MouseHide
  51.              FOR aRow = GloWindow(windo).row1 _
  52.                        + GloButton(button).row1 - 1 _
  53.                      TO GloWindow(windo).row1 _
  54.                        + GloButton(button).row1 + 1 
  55.                 LOCATE aRow, _
  56.                    GloWindow(windo).col1 + GloButton(button).col1 - 1
  57.                 PRINT SPACE$(4 + LEN(RTRIM$(GloButton(button).text$)));
  58.              NEXT aRow
  59.              MouseShow
  60.          CASE 6
  61.              MouseHide
  62.              FOR A = 1 TO _
  63.                      GloButton(button).row2 - GloButton(button).row1 + 1
  64.                 LOCATE _
  65.                  GloWindow(windo).row1 + GloButton(button).row1 + A - 2, _
  66.                  GloWindow(windo).col1 + GloButton(button).col1 - 1
  67.                 PRINT " ";
  68.              NEXT A
  69.              MouseShow
  70.          CASE 7
  71.              LOCATE GloWindow(windo).row1 + GloButton(button).row1 - 1, _
  72.                     GloWindow(windo).col1 + GloButton(button).col1 - 1
  73.              MouseHide
  74.              PRINT _
  75.               SPACE$(GloButton(button).col2 - GloButton(button).col1 + 1);
  76.              MouseShow
  77.          CASE ELSE
  78.     END SELECT
  79.  
  80.  
  81.     GloStorage.numButtonsOpen = GloStorage.numButtonsOpen - 1
  82.     WHILE button <= GloStorage.numButtonsOpen
  83.          GloButton(button).row1 = GloButton(button + 1).row1
  84.          GloButton(button).col1 = GloButton(button + 1).col1
  85.          GloButton(button).row2 = GloButton(button + 1).row2
  86.          GloButton(button).col2 = GloButton(button + 1).col2
  87.          GloButton(button).text = GloButton(button + 1).text
  88.          GloButton(button).handle = GloButton(button + 1).handle
  89.          GloButton(button).state = GloButton(button + 1).state
  90.          GloButton(button).buttonType = GloButton(button + 1).buttonType
  91.          GloButton(button).windowHandle = _
  92.                             GloButton(button + 1).windowHandle
  93.          button = button + 1
  94.     WEND
  95.   END IF
  96.  END IF
  97. END IF
  98.  
  99. END SUB
  100.